import originAxios from 'axios'

export default function request(option) {
  return new Promise((resolve, reject) => {
    // 创建 axios 实例
    const instance = originAxios.create({
      baseURL: "http://123.207.32.32:9001/",
      timeout: 10000
    })

    // 配置请求和响应拦截
    instance.interceptors.request.use(config => {
      // 1. 当发送网络请求时，在页面中添加一个 loading 组件，作为动画
      // 2. 某些请求要求用户必须登录，判断用户是否有 token，如果没有跳转到 login 页面
      // 3. 对请求的参数进行序列化

      return config;
    }, err => {
      return err;
    })


    instance.interceptors.response.use(response => {
      return response.data
    }, err => {
      if (err && err.message) {
        switch (err.response.data) {
          case 400:
            err.message = "请求错误"
            break;
          case 401:
            err.message = "未授权的访问"
            break;
          default: 
            err.message = "其它错误信息"
        }
      }
      return err;
    })


    // 传入对象进行网络请求
    instance(option).then(res => {
      resolve(res)
    }).catch(err => {
      reject(err);
    })
  })
}